'use strict';

const BaseInit = require('../../libs/base/BaseInit');
const Main = require('./Main');

/**
 * Main进程初始化
 */
class MainInit extends BaseInit {
  /**
   * 构造函数
   */
  constructor() {
    super('Main');
  }

  /**
   * 创建服务实例
   */
  async createService() {
    await this.createOneService('Main', Main);
  }
}

// 监听未捕获的异常
process.on('uncaughtException', (err) => {
  console.error('[Main] 未捕获的异常:', err);
});

// 监听未处理的Promise拒绝
process.on('unhandledRejection', (reason, promise) => {
  console.error('[Main] 未处理的Promise拒绝:', reason);
});

// 创建并初始化Main服务
const mainInit = new MainInit();

// 启动初始化流程
mainInit.init().catch(error => {
  console.error('[Main] 初始化失败:', error);
  process.exit(1);
});

// 监听进程信号
process.on('SIGINT', () => mainInit.handleExit());
process.on('SIGTERM', () => mainInit.handleExit()); 